summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java')
-rw-r--r--src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java b/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java
new file mode 100644
index 000000000..892b46387
--- /dev/null
+++ b/src/android/app/src/main/java/org/citra/citra_emu/utils/PicassoRoundedCornersTransformation.java
@@ -0,0 +1,45 @@
+package org.citra.citra_emu.utils;
+
+import android.graphics.Bitmap;
+import android.graphics.BitmapShader;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.graphics.RectF;
+
+import com.squareup.picasso.Transformation;
+
+public class PicassoRoundedCornersTransformation implements Transformation {
+ @Override
+ public Bitmap transform(Bitmap icon) {
+ final int width = icon.getWidth();
+ final int height = icon.getHeight();
+ final Rect rect = new Rect(0, 0, width, height);
+ final int size = Math.min(width, height);
+ final int x = (width - size) / 2;
+ final int y = (height - size) / 2;
+
+ Bitmap squaredBitmap = Bitmap.createBitmap(icon, x, y, size, size);
+ if (squaredBitmap != icon) {
+ icon.recycle();
+ }
+
+ Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+ Canvas canvas = new Canvas(output);
+ BitmapShader shader = new BitmapShader(squaredBitmap, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP);
+ Paint paint = new Paint();
+ paint.setAntiAlias(true);
+ paint.setShader(shader);
+
+ canvas.drawRoundRect(new RectF(rect), 10, 10, paint);
+
+ squaredBitmap.recycle();
+
+ return output;
+ }
+
+ @Override
+ public String key() {
+ return "circle";
+ }
+} \ No newline at end of file